package cn.explink.distributor.framework;

import java.util.List;

import cn.explink.distributor.framework.exception.NoneTargetFoundException;

/**
 * 智能分单器
 *
 * @author songkaojun 2015年5月22日
 */
public interface Distributor {
	/**
	 *
	 * @param order
	 *            要分配的订单
	 * @param getBestFitTarget
	 *            是否选出最符合的分单对象
	 * @return
	 *         如果getBestFitTarget为true,则返回最符合条件的满足条件的分单对象，否则，返回所有符合条件的分单对象，顺序越靠前，
	 *         符合度越高
	 *
	 * @throws NoneTargetFoundException
	 */
	public abstract List<Target> distribute(Order order, boolean getBestFitTarget) throws NoneTargetFoundException;

}
